package xyz.qiquqiu.lc4blogdemo.aiserverce;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;
import reactor.core.publisher.Flux;

@AiService(
        wiringMode = AiServiceWiringMode.EXPLICIT, // 默认是自动装配，选了手动就要配置属性
        chatModel = "openAiChatModel", // 配置使用的普通模型（默认名，由langchain4j自动装配）
        streamingChatModel = "openAiStreamingChatModel", // 配置使用的流式模型（默认名，由langchain4j自动装配）
        // chatMemory = "chatMemory"
        chatMemoryProvider = "chatMemoryProvider"
)
public interface DemoService {

    /**
     * 大模型聊天接口-流式响应
     * @param memoryId 会话Id
     * @param message 用户发送的消息，相当于提示词prompt
     * @return
     */
    Flux<String> chat(@MemoryId Long memoryId, @UserMessage String message);
}
